Page({
  data: {
    // 记录文章的数据
    article: { title: '', contents: [] },
    // 发布按钮文本 可以利用它阻止重复提交 
    subText: '发表文章'
  },
  onLoad: function () {
    setTimeout(() => {
      this.selectComponent("#graceEditor").setDefault({
        title: "默认标题",
        contents: [
          { type: 'txt', content: 'hi..' },
          // 默认图片请设置 uploaded : ok 代表不需要上传的默认图片
          { type: 'img', content: 'https://staticimgs.oss-cn-beijing.aliyuncs.com/indexBanner01.png', uploaded: 'ok' }
        ]
      });
    }, 1000);
  },
  sendArt: function () {
    if (this.data.subText != '发表文章') { return; }
    this.setData({ subText : '数据提交中'});
    // 可以验证数据
    // this.data.article.title 保存了文章标题
    // this.data.article.contents 保存了文章项目[ 数组 可以使用 length 验证 ]
    if (this.data.article.contents.length < 1) {
      this.setData({ subText: '发布文章' });
      wx.showToast({ title: "请填写文章内容", icon: "none" });
      return;
    }
    // 先完成图片上传
    this.upLoadImg(0);
  },
  // 提交給api 保存文章数据
  submit: function () {
    // 准备好的文章数据
    // 自行提交给api 即可
    console.log(this.data.article);
    this.setData({ subText: '发布成功' });
  },
  // 动态保存文章信息
  saveArticle: function (e) {
    this.setData({ article : e.detail});
  },
  // 收集数据并提交 包含图片上传
  upLoadImg: function (step) {
    if (!step) { step = 0; }
    // 上传完毕
    if (step > this.data.article.contents.length - 1) { this.submit(); return; }
    // 是否为图片
    if (this.data.article.contents[step].type != 'img') { this.upLoadImg(step + 1); return; }
    // 图片是否已经上传或是默认值
    if (this.data.article.contents[step].uploaded) {
      this.upLoadImg(step + 1); return;
    }
    wx.showLoading({ title: "图片上传中" });
    var uploadTask = wx.uploadFile({
      url: 'http://您的图片上传服务器api地址',
      filePath: this.data.article.contents[step].content,
      fileType: 'image',
      name: 'img',
      success: (uploadFileRes) => {
        uploadFileRes = JSON.parse(uploadFileRes.data);
        //图片上传成功后返回服务器端路径，记录这个路径
        if (uploadFileRes.status != 'ok') {
          this.setData({ subText: '发布文章'});
          this.selectComponent("#graceEditor").setError(step);
          return;
        } else {
          this.data.article.contents[step].content = uploadFileRes.data;
        }
        this.upLoadImg(step + 1);
      },
      complete: function () {
        wx.hideLoading();
      },
      fail: () => {
        this.setData({ subText: '发布文章' });
        this.selectComponent("#graceEditor").setError(step);
        return;
      }
    });
  }
})